#ifndef __s60_key_codes_h__
#define __s60_key_codes_h__

#define S60_KEY_PRESS 1
#define S60_KEY_UP 2
#define S60_KEY_DOWN 3

#define S60_EKeyNull   0x0000
#define S60_EKeyBell   0x0007
#define S60_EKeyBackspace   0x0008
#define S60_EKeyTab   0x0009
#define S60_EKeyLineFeed   0x000a
#define S60_EKeyVerticalTab   0x000b
#define S60_EKeyFormFeed   0x000c
#define S60_EKeyEnter   0x000d
#define S60_EKeyEscape   0x001b
#define S60_EKeySpace   0x0020
#define S60_EKeyDelete   0x007f
#define S60_EKeyPrintScreen   0xf800
#define S60_EKeyPause   0xf801
#define S60_EKeyHome   0xf802
#define S60_EKeyEnd   0xf803
#define S60_EKeyPageUp   0xf804
#define S60_EKeyPageDown   0xf805
#define S60_EKeyInsert   0xf806
#define S60_EKeyLeftArrow   0xf807
#define S60_EKeyRightArrow   0xf808
#define S60_EKeyUpArrow   0xf809
#define S60_EKeyDownArrow   0xf80a
#define S60_EKeyLeftShift   0xf80b
#define S60_EKeyRightShift   0xf80c
#define S60_EKeyLeftAlt   0xf80d
#define S60_EKeyRightAlt   0xf80e
#define S60_EKeyLeftCtrl   0xf80f
#define S60_EKeyRightCtrl   0xf810
#define S60_EKeyLeftFunc   0xf811
#define S60_EKeyRightFunc   0xf812
#define S60_EKeyCapsLock   0xf813
#define S60_EKeyNumLock   0xf814
#define S60_EKeyScrollLock   0xf815
#define S60_EKeyF1   0xf816
#define S60_EKeyF2   0xf817
#define S60_EKeyF3   0xf818
#define S60_EKeyF4   0xf819
#define S60_EKeyF5   0xf81a
#define S60_EKeyF6   0xf81b
#define S60_EKeyF7   0xf81c
#define S60_EKeyF8   0xf81d
#define S60_EKeyF9   0xf81e
#define S60_EKeyF10   0xf81f
#define S60_EKeyF11   0xf820
#define S60_EKeyF12   0xf821
#define S60_EKeyF13   0xf822
#define S60_EKeyF14   0xf823
#define S60_EKeyF15   0xf824
#define S60_EKeyF16   0xf825
#define S60_EKeyF17   0xf826
#define S60_EKeyF18   0xf827
#define S60_EKeyF19   0xf828
#define S60_EKeyF20   0xf829
#define S60_EKeyF21   0xf82a
#define S60_EKeyF22   0xf82b
#define S60_EKeyF23   0xf82c
#define S60_EKeyF24   0xf82d
#define S60_EKeyOff   0xf82e
#define S60_EKeyIncContrast   0xf82f
#define S60_EKeyDecContrast   0xf830
#define S60_EKeyBacklightOn   0xf831
#define S60_EKeyBacklightOff   0xf832
#define S60_EKeyBacklightToggle   0xf833
#define S60_EKeySliderDown   0xf834
#define S60_EKeySliderUp   0xf835
//#define S60_EKeyMenu   0xf836
#define S60_EKeyDictaphonePlay   0xf837
#define S60_EKeyDictaphoneStop   0xf838
#define S60_EKeyDictaphoneRecord   0xf839
#define S60_EKeyHelp   0xf83a
#define S60_EKeyDial   0xf83b
#define S60_EKeyScreenDimension0   0xf83c
#define S60_EKeyScreenDimension1   0xf83d
#define S60_EKeyScreenDimension2   0xf83e
#define S60_EKeyScreenDimension3   0xf83f
#define S60_EKeyIncVolume   0xf840
#define S60_EKeyDecVolume   0xf841
#define S60_EKeyDevice0   0xf842
#define S60_EKeyDevice1   0xf843
#define S60_EKeyDevice2   0xf844
#define S60_EKeyDevice3   0xf845
#define S60_EKeyDevice4   0xf846
#define S60_EKeyDevice5   0xf847
#define S60_EKeyDevice6   0xf848
#define S60_EKeyDevice7   0xf849
#define S60_EKeyDevice8   0xf84a
#define S60_EKeyDevice9   0xf84b
#define S60_EKeyDeviceA   0xf84c
#define S60_EKeyDeviceB   0xf84d
#define S60_EKeyDeviceC   0xf84e
#define S60_EKeyDeviceD   0xf84f
#define S60_EKeyDeviceE   0xf850
#define S60_EKeyDeviceF   0xf851
#define S60_EKeyApplication0   0xf852
#define S60_EKeyApplication1   0xf853
#define S60_EKeyApplication2   0xf854
#define S60_EKeyApplication3   0xf855
#define S60_EKeyApplication4   0xf856
#define S60_EKeyApplication5   0xf857
#define S60_EKeyApplication6   0xf858
#define S60_EKeyApplication7   0xf859
#define S60_EKeyApplication8   0xf85a
#define S60_EKeyApplication9   0xf85b
#define S60_EKeyApplicationA   0xf85c
#define S60_EKeyApplicationB   0xf85d
#define S60_EKeyApplicationC   0xf85e
#define S60_EKeyApplicationD   0xf85f
#define S60_EKeyApplicationE   0xf860
#define S60_EKeyApplicationF   0xf861
#define S60_EKeyYes   0xf862
#define S60_EKeyNo   0xf863
#define S60_EKeyIncBrightness   0xf864
#define S60_EKeyDecBrightness   0xf865
#define S60_EKeyKeyboardExtend   0xf866
#define S60_EKeyDevice10   0xf87
#define S60_EKeyDevice11   0xf88
#define S60_EKeyDevice12   0xf89
#define S60_EKeyDevice13   0xf8a
#define S60_EKeyDevice14   0xf8b
#define S60_EKeyDevice15   0xf8c
#define S60_EKeyDevice16   0xf8d
#define S60_EKeyDevice17   0xf8e
#define S60_EKeyDevice18   0xf8f
#define S60_EKeyDevice19   0xf90
#define S60_EKeyDevice1A   0xf91
#define S60_EKeyDevice1B   0xf92
#define S60_EKeyDevice1C   0xf93
#define S60_EKeyDevice1D   0xf94
#define S60_EKeyDevice1E   0xf95
#define S60_EKeyDevice1F   0xf96
#define S60_EKeyApplication10   0xf97
#define S60_EKeyApplication11   0xf98
#define S60_EKeyApplication12   0xf99
#define S60_EKeyApplication13   0xf9a
#define S60_EKeyApplication14   0xf9b
#define S60_EKeyApplication15   0xf9c
#define S60_EKeyApplication16   0xf9d
#define S60_EKeyApplication17   0xf9e
#define S60_EKeyApplication18   0xf9f
#define S60_EKeyApplication19   0xfa0
#define S60_EKeyApplication1A   0xfa1
#define S60_EKeyApplication1B   0xfa2
#define S60_EKeyApplication1C   0xfa3
#define S60_EKeyApplication1D   0xfa4
#define S60_EKeyApplication1E   0xfa5
#define S60_EKeyApplication1F   0xfa6

#define S60_EStdKeyNull 0x00
#define S60_EStdKeyBackspace 0x01
#define S60_EStdKeyTab 0x02
#define S60_EStdKeyEnter 0x03
#define S60_EStdKeyEscape 0x04
#define S60_EStdKeySpace 0x05
#define S60_EStdKeyPrintScreen 0x06
#define S60_EStdKeyPause 0x07
#define S60_EStdKeyHome 0x08
#define S60_EStdKeyEnd 0x09
#define S60_EStdKeyPageUp 0x0a
#define S60_EStdKeyPageDown 0x0b
#define S60_EStdKeyInsert 0x0c
#define S60_EStdKeyDelete 0x0d
#define S60_EStdKeyLeftArrow 0x0e
#define S60_EStdKeyRightArrow 0x0f
#define S60_EStdKeyUpArrow 0x10
#define S60_EStdKeyDownArrow 0x11
#define S60_EStdKeyLeftShift 0x12
#define S60_EStdKeyRightShift 0x13
#define S60_EStdKeyLeftAlt 0x14
#define S60_EStdKeyRightAlt 0x15
#define S60_EStdKeyLeftCtrl 0x16
#define S60_EStdKeyRightCtrl 0x17
#define S60_EStdKeyLeftFunc 0x18
#define S60_EStdKeyRightFunc 0x19
#define S60_EStdKeyCapsLock 0x1a
#define S60_EStdKeyNumLock 0x1b
#define S60_EStdKeyScrollLock 0x1c
#define S60_EStdKeyF1 0x60
#define S60_EStdKeyF2 0x61
#define S60_EStdKeyF3 0x62
#define S60_EStdKeyF4 0x63
#define S60_EStdKeyF5 0x64
#define S60_EStdKeyF6 0x65
#define S60_EStdKeyF7 0x66
#define S60_EStdKeyF8 0x67
#define S60_EStdKeyF9 0x68
#define S60_EStdKeyF10 0x69
#define S60_EStdKeyF11 0x6a
#define S60_EStdKeyF12 0x6b
#define S60_EStdKeyF13 0x6c
#define S60_EStdKeyF14 0x6d
#define S60_EStdKeyF15 0x6e
#define S60_EStdKeyF16 0x6f
#define S60_EStdKeyF17 0x70
#define S60_EStdKeyF18 0x71
#define S60_EStdKeyF19 0x72
#define S60_EStdKeyF20 0x73
#define S60_EStdKeyF21 0x74
#define S60_EStdKeyF22 0x75
#define S60_EStdKeyF23 0x76
#define S60_EStdKeyF24 0x77
#define S60_EStdKeyXXX 0x78
#define S60_EStdKeyComma 0x79
#define S60_EStdKeyFullStop 0x7a
#define S60_EStdKeyForwardSlash 0x7b
#define S60_EStdKeyBackSlash 0x7c
#define S60_EStdKeySemiColon 0x7d
#define S60_EStdKeySingleQuote 0x7e
#define S60_EStdKeyHash 0x7f
#define S60_EStdKeySquareBracketLeft 0x80
#define S60_EStdKeySquareBracketRight 0x81
#define S60_EStdKeyMinus 0x82
#define S60_EStdKeyEquals 0x83
#define S60_EStdKeyNkpForwardSlash 0x84
#define S60_EStdKeyNkpAsterisk 0x85
#define S60_EStdKeyNkpMinus 0x86
#define S60_EStdKeyNkpPlus 0x87
#define S60_EStdKeyNkpEnter 0x88
#define S60_EStdKeyNkp1 0x89
#define S60_EStdKeyNkp2 0x8a
#define S60_EStdKeyNkp3 0x8b
#define S60_EStdKeyNkp4 0x8c
#define S60_EStdKeyNkp5 0x8d
#define S60_EStdKeyNkp6 0x8e
#define S60_EStdKeyNkp7 0x8f
#define S60_EStdKeyNkp8 0x90
#define S60_EStdKeyNkp9 0x91
#define S60_EStdKeyNkp0 0x92
#define S60_EStdKeyNkpFullStop 0x93
#define S60_EStdKeyMenu 0x94
#define S60_EStdKeyBacklightOn 0x95
#define S60_EStdKeyBacklightOff 0x96
#define S60_EStdKeyBacklightToggle 0x97
#define S60_EStdKeyIncContrast 0x98
#define S60_EStdKeyDecContrast 0x99
#define S60_EStdKeySliderDown 0x9a
#define S60_EStdKeySliderUp 0x9b
#define S60_EStdKeyDictaphonePlay 0x9c
#define S60_EStdKeyDictaphoneStop 0x9d
#define S60_EStdKeyDictaphoneRecord 0x9e
#define S60_EStdKeyHelp 0x9f
#define S60_EStdKeyOff 0xa0
#define S60_EStdKeyDial 0xa1
#define S60_EStdKeyIncVolume 0xa2
#define S60_EStdKeyDecVolume 0xa3
#define S60_EStdKeyDevice0 0xa4
#define S60_EStdKeyDevice1 0xa5
#define S60_EStdKeyDevice2 0xa6
#define S60_EStdKeyDevice3 0xa7
#define S60_EStdKeyDevice4 0xa8
#define S60_EStdKeyDevice5 0xa9
#define S60_EStdKeyDevice6 0xaa
#define S60_EStdKeyDevice7 0xab
#define S60_EStdKeyDevice8 0xac
#define S60_EStdKeyDevice9 0xad
#define S60_EStdKeyDeviceA 0xae
#define S60_EStdKeyDeviceB 0xaf
#define S60_EStdKeyDeviceC 0xb0
#define S60_EStdKeyDeviceD 0xb1
#define S60_EStdKeyDeviceE 0xb2
#define S60_EStdKeyDeviceF 0xb3
#define S60_EStdKeyApplication0 0xb4
#define S60_EStdKeyApplication1 0xb5
#define S60_EStdKeyApplication2 0xb6
#define S60_EStdKeyApplication3 0xb7
#define S60_EStdKeyApplication4 0xb8
#define S60_EStdKeyApplication5 0xb9
#define S60_EStdKeyApplication6 0xba
#define S60_EStdKeyApplication7 0xbb
#define S60_EStdKeyApplication8 0xbc
#define S60_EStdKeyApplication9 0xbd
#define S60_EStdKeyApplicationA 0xbe
#define S60_EStdKeyApplicationB 0xbf
#define S60_EStdKeyApplicationC 0xc0
#define S60_EStdKeyApplicationD 0xc1
#define S60_EStdKeyApplicationE 0xc2
#define S60_EStdKeyApplicationF 0xc3
#define S60_EStdKeyYes 0xc4
#define S60_EStdKeyNo 0xc5
#define S60_EStdKeyIncBrightness 0xc6
#define S60_EStdKeyDecBrightness 0xc7
#define S60_EStdKeyKeyboardExtend 0xc8
#define S60_EStdKeyDevice10 0xc9
#define S60_EStdKeyDevice11 0xca
#define S60_EStdKeyDevice12 0xcb
#define S60_EStdKeyDevice13 0xcc
#define S60_EStdKeyDevice14 0xcd
#define S60_EStdKeyDevice15 0xce
#define S60_EStdKeyDevice16 0xcf
#define S60_EStdKeyDevice17 0xd0
#define S60_EStdKeyDevice18 0xd1
#define S60_EStdKeyDevice19 0xd2
#define S60_EStdKeyDevice1A 0xd3
#define S60_EStdKeyDevice1B 0xd4
#define S60_EStdKeyDevice1C 0xd5
#define S60_EStdKeyDevice1D 0xd6
#define S60_EStdKeyDevice1E 0xd7
#define S60_EStdKeyDevice1F 0xd8
#define S60_EStdKeyApplication10 0xd9
#define S60_EStdKeyApplication11 0xda
#define S60_EStdKeyApplication12 0xdb
#define S60_EStdKeyApplication13 0xdc
#define S60_EStdKeyApplication14 0xdd
#define S60_EStdKeyApplication15 0xde
#define S60_EStdKeyApplication16 0xdf
#define S60_EStdKeyApplication17 0xe0
#define S60_EStdKeyApplication18 0xe1
#define S60_EStdKeyApplication19 0xe2
#define S60_EStdKeyApplication1A 0xe3
#define S60_EStdKeyApplication1B 0xe4
#define S60_EStdKeyApplication1C 0xe5
#define S60_EStdKeyApplication1D 0xe6
#define S60_EStdKeyApplication1E 0xe7
#define S60_EStdKeyApplication1F 0xe8	

// The following are not included in the Symbian headers.
#define S60_EKey0   0x30
#define S60_EKey1   0x31 
#define S60_EKey2   0x32
#define S60_EKey3   0x33
#define S60_EKey4   0x34
#define S60_EKey5   0x35
#define S60_EKey6   0x36
#define S60_EKey7   0x37
#define S60_EKey8   0x38
#define S60_EKey9   0x39
#define S60_EKeyStar   0x2a
#define S60_EKeyHash   0x23
#define S60_EKeyLeftSoftkey   EKeyDevice0
#define S60_EKeyRightSoftkey   EKeyDevice1
#define S60_EKeySelect   EKeyDevice3
#define S60_EKeyEdit   EKeyLeftShift
#define S60_EKeyMenu   EKeyApplication0

#define S60_EScancode0 0x30
#define S60_EScancode1 0x31
#define S60_EScancode2 0x32
#define S60_EScancode3 0x33
#define S60_EScancode4 0x34
#define S60_EScancode5 0x35
#define S60_EScancode6 0x36
#define S60_EScancode7 0x37
#define S60_EScancode8 0x38
#define S60_EScancode9 0x39
#define S60_EScancodeStar 0x2a
#define S60_EScancodeHash 0x7f
#define S60_EScancodeBackspace 0x01
#define S60_EScancodeLeftSoftkey EStdKeyDevice0
#define S60_EScancodeRightSoftkey EStdKeyDevice1
#define S60_EScancodeSelect 0xa7
#define S60_EScancodeYes 0xc4
#define S60_EScancodeNo 0xc5
#define S60_EScancodeLeftArrow 0xe
#define S60_EScancodeRightArrow 0xf
#define S60_EScancodeUpArrow 0x10
#define S60_EScancodeDownArrow 0x11
#define S60_EScancodeEdit EStdKeyLeftShift
#define S60_EScancodeMenu EStdKeyApplication0

// Modifiers.
#define S60_EModifierAutorepeatable 0x00000001
#define S60_EModifierKeypad 0x00000002
#define S60_EModifierLeftAlt 0x00000004
#define S60_EModifierRightAlt 0x00000008
#define S60_EModifierAlt 0x00000010
#define S60_EModifierLeftCtrl 0x00000020
#define S60_EModifierRightCtrl 0x00000040
#define S60_EModifierCtrl 0x00000080
#define S60_EModifierLeftShift 0x00000100
#define S60_EModifierRightShift 0x00000200
#define S60_EModifierShift 0x00000400
#define S60_EModifierLeftFunc 0x00000800
#define S60_EModifierRightFunc 0x00001000
#define S60_EModifierFunc 0x00002000
#define S60_EModifierCapsLock 0x00004000
#define S60_EModifierNumLock 0x00008000
#define S60_EModifierScrollLock 0x00010000
#define S60_EModifierKeyUp 0x00020000
#define S60_EModifierSpecial 0x00040000
#define S60_EModifierDoubleClick 0x00080000
#define S60_EModifierPureKeycode 0x00100000
#define S60_EModifierKeyboardExtend 0x00200000
#define S60_EModifierCancelRotation 0x00000000
#define S60_EModifierRotateBy90 0x00400000
#define S60_EModifierRotateBy180 0x00800000
#define S60_EModifierRotateBy270 0x01000000
#define S60_EModifierPointer3DButton1 0x02000000
#define S60_EModifierPointer3DButton2 0x04000000
#define S60_EModifierPointer3DButton3 0x08000000
#define S60_EAllModifiers 0x0fffffff

#endif
